# JHipster generated helm package manager

## Preparation

You will need to push your image to a registry. If you have not done so, use the following commands to tag and push the images:

```
<%_ for (let i = 0; i < appsFolders.length; i++) { _%>
    <%_ if (appConfigs[i].baseName.toLowerCase() !== appConfigs[i].targetImageName) { _%>
$ docker image tag <%= appConfigs[i].baseName.toLowerCase() %> <%= appConfigs[i].targetImageName %>
    <%_ } _%>
$ <%= dockerPushCommand %> <%= appConfigs[i].targetImageName %>
<%_ } _%>
```

## Prerequisites

To use the templates generated by this sub-generator `helm cli and tiller` should be installed. Instructions on installing `helm` can be referred
at [https://github.com/helm/helm](https://github.com/helm/helm)

Once Helm is installed you need to add the below repositories:
```
helm repo add stable https://kubernetes-charts.storage.googleapis.com
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com
```
These repositories should be added to the local cache, because this sub-generator will pull some charts from them.

This repository in turn uses the `kubernetes` sub-generator for the microservices manifests and few service like database, Elasticsearch, Prometheus etc. that are referred from the above repositories.


## Deployment

You can deploy all your applications by running the following bash command:

```
bash helm-apply.sh (or) ./helm-apply.sh
```

`helm-apply.sh` will always do a clean install. Any of the existing charts with the same identity gets removed first and then it does a clean install.

You can upgrade all your apps (if you have made any changes to the generated manifests) by running the following bash command:

```
bash helm-upgrade.sh (or) ./helm-upgrade.sh
```

For Kubernetes specific information, refer to the `kubernetes` sub-generator Readme instructions.

### Backlogs to be covered

* Couchbase is yet to be integrated with Helm repository, it is still referring the Kubernetes sub-generator manifest - to be tested
* helm upgrade - to be tested
* Istio - to be tested
